Ensuring that licensees of electronic data files have the proper licensing prior to using the data is of major concern to industries related to software, information, entertainment, and others. Providers of electronic data have become increasingly frustrated with their lack of ability to control and enforce licenses in the wake of the Internet and the World-Wide Web (WWW). Distribution of electronic data is omnipresent over the WWW, and data providers lack the technical ability to track and enforce their intellectual rights associated with this distribution.
Encryption technology has provided some relief by translating the electronic data into a format which is not useable until successfully decrypted. Yet, once the electronic data is decrypted it becomes vulnerable to being copied in its decrypted format. Correspondingly, encryption techniques have provided little relief to data providers, beyond the initial distribution of the electronic data to a valid licensee of that data. If the valid licensee abuses the license by making unauthorized copies of the electronic data and distributing those copies, then the data provider has little to no ability to prevent the prospective unauthorized use by a non licensed user, and further the data provider has little ability to detect the unauthorized distribution of its initial licensee.
Moreover, attempts have been made to require users to be connected to an external license server before use of the electronic data may proceed in a normal fashion. In this way, a user using an existing connection to the Internet, or using a direct connection to the license server, authenticates the use of the electronic data before each use of the data. In this instance, the data itself includes disabling logic or instructions which are not enabled until the data is properly authenticated by the license server. However, as is obvious by the above description, the data cannot be used unless a connection is made and maintained with the license server to authenticate the data.
Further, data providers may alter the data themselves, particularly when the data is a set of executable instructions (e.g., software executables). In this way, the executable instructions performs validation checks each time it is run against itself to ensure a valid license exists. For example, upon initial installation the executable instructions may create an encrypted flat file having information regarding the date of installation, the current date, the location of licensing files, and the like. On any subsequent execution of the software, this encrypted flat file is evaluated against any valid licensing logic to determine if the executable instructions may properly be executed.
This technique provides some security in enforcing valid data licensing, but it is not without some expense since subsequent upgrades, patches, and releases of the data require reinstallation of the data and this presents maintenance problems for the data provider, particularly if the data was modified in a Myriad of customized manners in order to accommodate a variety of user licenses. Furthermore, astute programmers are still capable of modifying the instructions while it is running in the operating system's memory by disabling those locations in the instructions where the licensing checks are occurring. The modified software may then be distributed and used by others with the licensing checks disabled.
As will be readily apparent, providing valid licenses and license checking with data are problematic issues for data providers. Accordingly, methods and systems which provide true licenses for data is needed, and these true licenses must be easily customizable to accommodate a variety of user needs without requiring labor intensive modifications to the data.